Ranking content items provided as search results by a search application

ABSTRACT

Described is a system and technique for providing search results in response to a search query for content items. The system may search for content items based on searching metadata associated with the content items. The system may rank the search results based on various criteria to display the search results in an intuitive and relevant manner within a search application. For example, in instances where the search application displays sample text (or a snippet) of the content item as part of a search result, the system may prioritize content items that contain the search query as part of the sample text.

RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application No. 62/349,106, filed Jun. 12, 2016, the entirety of which is incorporated herein by reference.

TECHNICAL FIELD

This disclosure relates generally to the field of searching, and more specifically, ranking search results of content items provided in response to a search query.

BACKGROUND

Many traditional tools exist to search for various types of content within different environments. For example, in an online environment, a search engine may employ various algorithms for ranking search results such as websites. However, when searches are initiated in a local (e.g. offline) environment, traditional tools often rely on search capabilities of a file management application (e.g. file explorer). For example, these file management applications often allow a user to search for files often limited to a particular set of file types. Moreover, such file management applications often search through the same information regardless of the type of file, which typically includes the file name, the type of file, the date of creation, and certain other basic parameters that are maintained for the file.

Current devices, however, often store vast amounts of content including content items not typically accessed by users from a file management application. For example, certain types of content items (although saved as a file in some cases) are typically accessed directly from one or more applications, and not organized in directories traditionally navigated by file management applications. Accordingly, current devices often have interfaces that include a system-wide search application (e.g. a “finder” program) that users initiate as a primary source to access contents items. Accordingly, such search applications are often required to search amongst a variety of content item types and provide results in an intuitive manner.

SUMMARY

Described is a system and technique for providing search results in response to a query for content items. For example, in one embodiment, a user may provide a search query (e.g. via a search application of a device) for content items, and in response, the system may search for content items based on metadata associated with the content items. The system may rank the search results based on various criteria as further discussed herein to display the search results in an intuitive and relevant manner. For example, in instances where the search application displays sample text (or a snippet) of the content item as part of a search result, the system may prioritize content items that include the search query as part of the sample text. In addition, prioritizing the display of content items may also include grouping and categorizing search results in a particular manner based on weights. Accordingly, the system and technique described herein may allow a search application to display content items in a more relevant manner especially in circumstances where a user is searching across a breadth of content item types.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the disclosure are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements.

FIG. 1 is a block diagram illustrating an example of an operating environment according an embodiment of the disclosure.

FIG. 2 is a process flow diagram illustrating a process of providing ranked search results according to an embodiment of the disclosure.

FIG. 3A is a diagram illustrating an example of a search application interface according an embodiment of the disclosure.

FIG. 3B is a diagram illustrating an example of prioritizing the display of search results that include the search query as part of the sample text according an embodiment of the disclosure.

FIG. 4A is a diagram illustrating an example of displaying search results within categorized groups according an embodiment of the disclosure.

FIG. 4B is a diagram illustrating an example of prioritizing the display of categorized groups that include the search query as part of the sample text according an embodiment of the disclosure.

FIG. 5A is a diagram illustrating an example of displaying a predefined number of search results within each categorized group according an embodiment of the disclosure.

FIG. 5B is a diagram illustrating an example of displaying only prioritized search results within each categorized group according an embodiment of the disclosure.

FIG. 6 is a diagram illustrating an example of displaying sample text as part of a selectable item according an embodiment of the disclosure.

FIG. 7A is an example diagram illustrating metadata entries for an email content item according to an embodiment of the disclosure.

FIG. 7B is an example diagram illustrating dynamic metadata entries for an email content item according to an embodiment of the disclosure.

FIG. 8 is an example flow diagram illustrating a method of displaying ranked content items as search results according to an embodiment of the disclosure.

FIG. 9 is an example flow diagram illustrating another method of displaying ranked content items as search results according to an embodiment of the disclosure.

FIG. 10 is a block diagram illustrating an example computing system, which may be used in conjunction with one or more of the embodiments of the disclosure.

DETAILED DESCRIPTION

Various embodiments and aspects will be described with reference to details discussed below, and the accompanying drawings will illustrate the various embodiments. The following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of various embodiments. However, in certain instances, well-known or conventional details are not described in order to provide a concise discussion of embodiments. References to “one embodiment” or “an embodiment” or “some embodiments” means that a particular feature, structure, or characteristic described in conjunction with the embodiment can be included in at least one embodiment. The appearances of the phrase “embodiment” in various places in the specification do not necessarily refer to the same embodiment. The processes depicted in the figures that follow are performed by processing logic that comprises hardware (e.g. circuitry, dedicated logic, etc.), software, or a combination of both. Although the processes are described below in terms of some sequential operations, it should be appreciated that some of the operations described may be performed in a different order, or some operations may be performed in parallel rather than sequentially.

As described above, the disclosure relates to providing search results for content items, which may be provided within an operating environment as shown in FIG. 1.

FIG. 1 is a block diagram illustrating an example of an operating environment according an embodiment of the disclosure. The system 100 may include a client device 110 and server 120, which may be connected via a network 113. The network 113 may be any suitable type of wired or wireless network such as a local area network (LAN), a wide area network (WAN), or combination thereof. The network may also provide access to public content items 175 (e.g. internet content).

The client device 110 may be any type of computing device such as a smartphone, tablet, laptop, desktop, wearable device (e.g. smartwatch), set-top-box, interactive speaker, etc., and the server 120 may be any kind of server (or computing device, or another client device 110), which may be a standalone device, or part of a cluster of servers, and may include a cloud-based server, application server, backend server, or combination thereof.

As shown, the client device 110 may include various components or modules to perform various operations as described herein. The client device 110 may include a metadata processing module 140 that may process and collect various forms of metadata 160. Accordingly, the metadata processing module 140 may access metadata 160, as well as one or more indexes.

As referred to herein, metadata 160 may include any information (e.g. text) that may include characteristics, attributes, and the like, that may be associated with particular content items (local content items 170 and public content items 175). The metadata 160 may be stored as part of a content item, and/or may be stored separately (e.g. within a database or file). The metadata 160 may include information stored in any suitable format (e.g. metadata entries, fields, objects, files, etc.). In one embodiment, metadata 160 may be stored in a flat file format in order to improve the speed of retrieval of information in most circumstances. In one embodiment, metadata (e.g. if a metadata object or file) will itself contain entries or fields. In addition, the metadata may include information from different applications and a specific type of metadata may be created for each of the applications. In one embodiment, metadata may include a persistent identifier that uniquely identifies its associated content item. For example, this identifier remains the same even if the name of the file is changed or the file is modified. This allows for the persistent association between the particular content item and its metadata.

In addition, non-limiting examples of metadata may be found in commonly assigned U.S. Pat. No. 7,437,358, issued Oct. 14, 1998, the entirety of which is incorporated herein by reference.

As shown, the operating environment 100 may include a local index 150 for local content items 170 and/or metadata 160, and a public content items index 155 for public content items 175. As referred to herein, content items may include content items stored on a particular device (e.g. local content items 170) such as documents, emails, messages, pictures, media, applications, contacts, calendar items, reminders, folders, browser history, bookmarks, posts, and the like, as well as content items from public sources (e.g. public content items 175) including websites, webpages, applications, map information, reviews, retail items (e.g. from a particular online retailer), streamed media (e.g. music, videos, eBooks, etc.), pictures, social media content (e.g. posts, pictures, messages, contacts, etc.), and the like. It should be noted that the local and public content items are not mutually exclusive, and accordingly, public content items 175 may be local content items 170 (and vice versa).

The indexes may include identifiers or representations of the content items and these indexes may be designed to allow a user to rapidly locate a wide variety of content items. These indexes may index metadata 160 associated with content items (e.g. local content items 170 and public content items 175), as well as index the contents of these content items. In some embodiments, the local content items index 150 may be updated continuously (e.g. as content items are created, modified, etc.) using a background process (e.g. daemon) executing on a device. Similarly, the public content items index 155 may be updated using a crawler 157 such as an internet crawler. For example, crawler 157 may retrieve (e.g. “crawl”) for information from various websites, as well as from third-party providers. For example, crawler 157 may retrieve metadata relating to, for example, multimedia content items (e.g. music, movies, audio book, etc.) provided by third-party providers that may be accessed via a user account with the third-party provider. For instance, the system (e.g. crawler 157) may coordinate with a third-party provider (via an API) to provide searchable metadata for online content items to which the user may subscribe.

As shown in the embodiment of this figure, the local content items index 150 and public content item index 155 may be stored on separate devices. For example, in one embodiment, the system may distinguish between private data (e.g. local content items 170) stored on the device, and the public content items 175 (e.g. non-local content items) that may be accessed from public sources such as the internet or third-parties. In one embodiment, the system may secure the local content items 170 and metadata 160, by incorporating a firewall or other features to maintain the privacy of user content. In one embodiment, components that are part of a server may also be part of the client device 110, and accordingly, the system may secure these components using various techniques such as “sandboxing.” For example, sandboxing may include compartmentalizing resources (e.g. data, memory addresses, processes, features, etc.) that one or more components (or applications) are allowed to access on the client device 110. In addition, various encryption mechanisms may also be employed to secure content items 170 or metadata 160. It should be noted that although the content items are shown as a local (e.g. private) versus public dichotomy, in some embodiments, metadata (or content items) from public sources may be stored locally on the client device 110, and some local content items 170 may be accessed from a remote source (e.g. another client device 110, or server 120).

The client device 110 may also include a search application 122, which may provide an interface for receiving a search query and may initiate a search for content items as further described herein. The search application (or application) 122 may be provided as part of an operating system of the device, or may be part of an installed application (e.g. third-party application). In addition, the search application 122 may part be of an application that provides built-in search functionality. For example, an application (e.g. email application) may communicate with the components (e.g. modules) described herein via an API (e.g. API 130) to provide an interface for searching for content items.

The search module 124 may work in conjunction with the metadata processing module 140 to search for content items by searching metadata 160, or one or more of the indexes (or content items themselves). The ranking module 126 may also rank relevant search results based on weights as further described herein.

In one embodiment, the system may primarily search for local content items, but may also include a set of predefined (or user defined) public content items. For example, in one embodiment, the system may search a predefined set or type of public contents items (e.g. maps, wiki pages, particular websites, etc.). Accordingly, in one embodiment, the system may search for content items that are stored on a local device, as well as for content items that are from public sources (e.g. internet). It should be noted that the above search functionality may be performed on the client device 110, or in conjunction with the server 120. For example, the search query may be transmitted to a server 120 for processing, and the server may instruct client device 110 to perform a local search.

As described, the client device 110 may also include an API 130, to allow components (e.g. third-party applications) to access the metadata processing module 140 and other components shown. For example, the API 130 may provide a method for transferring data and commands between the metadata processing module 140 and these components. The metadata processing module 140 may also receive data from an importer/exporter via the API 130 that may communicate with various components to provide metadata for certain types of content items. As referred to herein, a third-party refers to a manufacturer or company other than the manufacturer or company providing the operating system for the device or the device itself. For example, a developer may utilize the API 130 to allow the developers to import or provide an indication of extractable metadata for content items specific to a particular application (e.g. third-party application).

It should be noted that configuration described above is an example, and various other configurations may be used without departing from the embodiments described herein. For instance, components may be added, omitted, and may interact in various ways known to an ordinary person skilled in the art.

FIG. 2 is a process flow diagram illustrating a process of providing ranked search results according to an embodiment of the disclosure. Process 200 may be performed, for example, by one or more components of system 100. In 210, the system may receive a search query. In one embodiment, a user may input a search query into a search application (e.g. search application 122), which may provide an interface as shown in the example of FIG. 3A. In one embodiment, when a search query is entered, the search application may provide results as soon as the user begins providing (e.g. typing) the search query. For example, the displayed search results may be updated as one or more characters of the search query are received. In one embodiment, the search application 122 may work in conjunction with a voice-based assistant. For example, a user may provide a voice-based input that is processed into a search query as described herein using a speech-to-text component.

While or after a search query is received, the system may perform a search for content items in 220. In one embodiment, the search may include searching metadata to identify content items relevant to the search query. Relevant content items may include content items that are associated with metadata that includes one or more terms similar to the search query, or metadata that contains (or includes, or matches) at least a part of the search query. When determining a relevancy, the system may use various search algorithms.

The system may also rank the search results in 230. In order to rank, or to identify the relevant content items, the system may employ a ranking algorithm. For example, ranking of content item may be based on various contextual data, characteristics, attributes, and the like. For example, such as recency (e.g. when the content item was created or last modified), user engagement actions (e.g. when was the content last opened, saved, modified, played, etc.), location, and other factors. In addition, certain metadata fields may be weighted or prioritized. In one embodiment, the system may take into account whether the search query is included in the metadata of a content item. Accordingly, as further discussed herein, the system may rank the content items based on whether the search query is part of metadata that is displayed as part of the sample text that is displayed with, or part of, a search result as shown for example in FIG. 3A.

In 240, the system may display the ranked search results. For example, in one embodiment, the system may prioritize the display of content items including the search query as part of the sample text as shown for example in FIG. 3B. As discussed above, the system may work in conjunction with a graphical user interface (GUI).

FIG. 3A is a diagram illustrating an example of a search application interface (or GUI) according an embodiment of the disclosure. As shown, the search application interface may include a search box 10 that receives a search query 12 including one or more search terms. As a search query is typed into the search box 12, a set of search results (15, 17, and 19) may be displayed within a first display area 21 (or window, or display section). As shown, as the search query 12 is entered, sample text 13 (or “snippet”) of a search result (e.g. as shown for search result 15) may be displayed. As referred to herein, sample text 13 or a snippet may provide a sample or a preview of a content item to allow a user to identify or evaluate the search result. In one embodiment, the sample text 13 may include one or more metadata entries or fields. Accordingly, the sample text 13 may include displaying information associated with a content item.

In one embodiment, the sample text 13 may include metadata associated with a search result. For example, as shown, search result 15 includes a map content item, and the sample text includes a location name, and an address of the content item shown as a search result. For search result 15, the sample text 13 includes the search query, which in this case is “desig.” For search result 17, the sample text does not include the search query. In other words, the metadata related to search result 17 that resulted in the content item being included as a search result, relates to metadata that is potentially not visible as sample text. In one embodiment, metadata that is not visible, may include data that is “cutoff” from the sample text preview area (e.g. due to size constraints). In another embodiment, metadata that is not visible may include metadata that is not designed to be displayed as sample text (e.g. hidden or private metadata). In one embodiment, an indicator (or visibility indicator) associated with a metadata entry (e.g. a flag) may indicate the metadata entry is displayed as sample text.

As described herein, in one embodiment, search results that include (or contain) the search query as part of the sample text (e.g. search results 15 and 19) may be prioritized. FIG. 3B illustrates such an embodiment. FIG. 3B is a diagram illustrating an example of prioritizing the display of search results that include the search query as part of the sample text over search results that do not include the search query as part of the sample text according an embodiment of the disclosure. As shown, search results 15 and 19, which include the search query (e.g. “desig”) as part of the sample text are prioritized over search result 17, which does not include the sample text. Prioritizing the display may include various forms including displaying content items above other content items. In another example, prioritizing may include emphasizes a particular search results using various methods (e.g. highlight, special position, top of a list, etc.).

FIG. 4A is a diagram illustrating an example of displaying search results within categorized groups according an embodiment of the disclosure. As shown, the search results may be displayed within a categorized group 24. The categorized groups may include any groupings for content items such as grouping content items by content item type. For instance, as shown in this example, the categorized groups include Email/Messages, Maps, Documents, and Images. As shown, content items provided as search results within each group, may be displayed in a prioritized manner. For example, as shown, search results 15 and 19, which include the search query as part of the sample text, are displayed above search result 17, which does not include the sample text. Accordingly, the system may display, within a corresponding group, the search results that contain the search query as part of the sample text above search results that do not contain the search query as part of the sample text. As shown, however, categorized group 24 (Email/Messages) is displayed above the other categorized groups. For example, in one embodiment, the system may weight certain categories higher than others based on various criteria. In other embodiments, however, the system may weight categories based on characteristics of the search results within each category. For example, the categories may be weighted based on whether they include one or more content items that contain the search query as part of the sample text as shown in FIG. 4B.

FIG. 4B is a diagram illustrating an example of prioritizing the display of categorized groups that include content items that contain the search query as part of the sample text according an embodiment of the disclosure. As shown, categorized groups of Maps, Documents, and Images may be prioritized over categorized group of Email/Messages, which does not include any content items that contain the search query as part of the sample text. Accordingly, such embodiments may prioritize the overall structure of presenting search results. It should be noted that other configurations may also be used to prioritize search results. For instance, FIG. 5A is a diagram illustrating an example of displaying a predefined number of search results within each categorized group according an embodiment of the disclosure. As shown in this embodiment, each of the categorized groups (e.g. Email/Messages, Maps, Documents, and Images) display three search results including content items that do not contain the search query as part of the sample text (e.g. search results 25, 26, and 27). Accordingly, as shown the search results may be prioritized within each group, for example, as discussed above with respect to FIG. 4A.

However, in other embodiments, only prioritized search results may be displayed within a categorized group as shown in FIG. 5B. FIG. 5B is a diagram illustrating an example of displaying only prioritized search results within each categorized group according an embodiment of the disclosure. As shown in this embodiment, when a categorized group (e.g. Maps, Documents, and Images) includes one or more content items that contain the search query as part of the sample text, only those content items will be displayed as search results (e.g. search results 25, 26, and 27 of FIG. 5A are not displayed). Moreover, as shown, when the categorized group 24 (e.g. Email/Messages) does not include any content items that contain the search query as part of the sample text, the relevant search results (or a predefined number of search results) may still be displayed. In other words, in one embodiment, search results may be prioritized to the extent of removing other content items within the same group that would otherwise be displayed as being relevant.

In one embodiment, displaying the search results may include displaying each of the content items as a selectable item within a list and the sample text may displayed as part of the selectable item as shown in FIG. 6. FIG. 6 is a diagram illustrating an example of displaying sample text as part of a selectable item according an embodiment of the disclosure. As shown in this embodiment, the content item that is displayed as a search result may be a selectable item 28. In addition, the sample text 29 may be displayed as part of, or may comprise, the selectable item 28. As shown in this embodiment, a separate rich preview 22 window (or portion, section, area, etc.) may be displayed concurrently with the sample text 28. For example, upon highlighting the sample text 28 (e.g. single click) the rich preview 22 may be displayed. The rich preview 22 may display metadata or contents of the content item. For instance, in this example, the rich preview 22 may display the contents of the email (e.g. email body) and as well as metadata (e.g. subject line). In one embodiment, the sample text 28 displays only metadata, and the rich preview 22 may display metadata as well as contents of an item. In addition, a selectable item 28 may be opened (e.g. document), launched (e.g. if an application), or played (media item), etc., when selected (e.g. double clicked).

As described above, the system may display or search metadata associated with a content item. FIG. 7A is an example diagram illustrating metadata entries 70 for an email content item according to an embodiment of the disclosure. As shown, a content item may be associated with various metadata entries (or fields) 74. As shown in this example, the metadata entries may include a subject line, message body preview, and the filename of any attachments. In addition, the metadata may include an identifier 72 to identify the associated content item (e.g. persistent identifier described above).

As described above, the system may weight search results based on whether the search query is contained (or included) within metadata that is displayed as part of the sample text. In one embodiment, the system may determine which metadata entries (or fields) are included as part of the sample text based on an indicator 76. As shown in this example, an indicator 76 is included for each metadata entry. In other embodiments, an indicator 76 may be included for a particular subset of metadata entries. The indicator may include a flag or a bit value, or other form of indicator. As described above, the system may consider which metadata entries are displayed (or visible, provided, etc.) as part of the sample text when ranking content items. For example, in this example, the indicator indicates that the subject line and message body preview are displayed as part of the sample text for a content item. In one embodiment, the message body preview may contain a predefined number of characters of the message body. For example, a search query that appears after a character count threshold (e.g. after the predefined number of characters), would not be displayed as part of the sample text.

In one embodiment, the metadata entries that may be displayed as part of the sample text may be static. For example, the metadata entries displayed as sample text may be predefined and specific to a particular content item. For example, the metadata displayed as sample text for an email content item may be the same for all searches and include the subject line and the message body preview as shown, for example, in FIG. 6. Accordingly, in one embodiment, the metadata entries that are displayed as part of the sample text may be the same for all email content items listed as a search result. In another embodiment, the metadata entries that may be displayed as part of the sample text may be dynamic.

FIG. 7B is an example diagram illustrating dynamic metadata entries for an email content item according to an embodiment of the disclosure. As shown in this example, the metadata entries of a message body preview and attachment as shown in FIG. 7A may be dynamically updated as described above. For example, the message body preview may be indicated as not being displayed as part of the sample text (e.g. not visible 78) in response to there being no message body for the associated content item. Accordingly, the system may instead display the attachment filename as sample text. Accordingly, the system may update the indicator of the attachment metadata field for email ID3 to indicate that it be displayed (e.g. visible 79) as part of the sample text. Accordingly, in this embodiment, a metadata entry is updated to be displayed as part of a sample text in response to a value of another metadata entry.

It should be noted that the dynamic metadata fields for the sample text as shown in FIG. 7B is only an example and other scenarios are also contemplated. For example, for a calendar event or a reminder content item, metadata entries may include a status as well as a due date and completion date. For example, when a metadata field corresponding to the status indicates that the event or reminder is still pending, the due date may be displayed as part of the sample text. However, when the status corresponding to the status indicates that the event or reminder is completed, the completion date may be displayed as part of the sample text.

As described above, the metadata entries that are displayed as part of the sample text may change based on various factors. For example, these factors may include the value or the presence (or absence) of other metadata fields for the same content item, terms of the search query itself, attributes of a user, device attributes, location of the device, and the like.

In addition, the system may update the displayed metadata entries based on user behavior or history information. For example, the system may include various ranking techniques to incorporate the visibility of sample text. In one embodiment, the system may monitor the hits within the search results (e.g. content item selected in response to a search) and dynamically adapt the metadata displayed as sample text. For example, search results that are selected based on metadata that is not visible within the sample text, may be updated such that they are visible in future searches. This update may include a global update for all devices, or a local update for a particular device.

In addition, in some embodiments, the ranking mechanisms (e.g. prioritizing content items that contain the search query as part of the sample text) may be turned on or off. This may occur on a per device, per user, or per query basis. For example, the user may turn off the ranking or weighting mechanism and search results may be provided based other characteristics.

In addition, it should be noted that embodiments described above, may be performed in response to a text query (e.g. text typed within a search box), or in response to a voice command (e.g. utterance). Accordingly, the search results may be presented in various forms including displayed items within a display area, or as audio output, or combinations thereof. For example, for example as described above the user may provide a voice command and the system may respond with audio indicating a retrieval of search results.

FIG. 8 is an example flow diagram illustrating a method of displaying ranked content items as search results according to an embodiment of the disclosure. Process 900 may use processing logic, which may include software, hardware, or a combination thereof. For example, process 900 may be performed by a system (e.g. or client device).

In 901, the system may receive a search query for a search application that displays sample text as part of a search result. In 902, the system may perform a search to identify content items associated with metadata that contain (or include) at least a part of the search query. In one embodiment, the metadata may be associated with an indicator (e.g. indicator 76) indicating whether the metadata is displayed as part of the sample text. In one embodiment, the metadata may include a first metadata entry and a second metadata entry. For example, the indicator may indicate that the first metadata entry is displayed as part of the sample text for a first content item. In one embodiment, the indicator for the first metadata entry may be dynamically updated in response to a determined value of the second metadata entry for the first content item.

In 903, the system may rank the identified content items using one or more weights based at least in part on whether the metadata is displayed as part of the sample text. In 904, the system may display the ranked content items as search results, wherein the displayed content items that contain the search query as part of the sample text are prioritized over the displayed content items that do not contain the search query as part of the sample text. In one embodiment, the ranked content items displayed as search results are updated as characters of the search query are received. In addition, the system may “push down” the display content items that do not contain the sample text.

In one embodiment, the system may display the content items that contain the search query as part of the sample text above content items that do not contain the search query as part of the sample text. In addition, in one embodiment, when displaying the search results in categorized groups, the system may display, within each of the categorized groups, the content items that contain the search query as part of the sample text above content items that do not contain the search query as part of the sample text. The system may also rank groups of content. For example, in one embodiment, the system may display the content items in categorized groups, and display the categorized groups that contain one or more content items that contain the search query as part of the sample text above the categorized groups that do not contain any content items that contain the search query as part of the sample text.

FIG. 9 is an example flow diagram illustrating a method of displaying ranked content items as search results according to an embodiment of the disclosure. Process 950 may use processing logic, which may include software, hardware, or a combination thereof. For example, process 950 may be performed by a system (e.g. or client device).

In 951, the system may receive a search query for a search application that displays sample text as part of a search result. In 952, the system may perform a search to identify content items associated with a metadata entry that includes the search query. For example, the identified content items may include a first content item associated with a first metadata entry that includes the search query, and a second content item associated with a second metadata entry that includes the search query.

In 953, the system may rank the identified content items based on whether the metadata or content entry is displayed as part of the sample text. For example, the first metadata or content entry may be displayed as part of the sample text, and the second metadata or content entry may not be displayed as part of the sample text. Accordingly, in such a scenario, the system may rank the first content items higher than the second content item. In 954, the system may display the ranked content items as search results including displaying the first content item above the second content item.

It should be noted that there may be variations to the flow diagrams or operations (or steps) described therein without departing from the embodiments described herein. For example, the operations may be performed in parallel, simultaneously, a differing order, or operations may be added, deleted, or modified.

FIG. 10 is a block diagram illustrating an example computing system, which may be used in conjunction with one or more of the embodiments of the disclosure. For example, computing system 1200 (or system, or computing device, or device) may represent any of the systems (e.g. systems 100), or devices described herein (e.g. client device 110 or server 120) that perform any of the processes, operations, or methods of the disclosure. Note that while the computing system illustrates various components, it is not intended to represent any particular architecture or manner of interconnecting the components as such details are not germane to the present disclosure. It will also be appreciated that other types of systems that have fewer or more components than shown may also be used with the present disclosure.

As shown, the computing system 1200 may include a bus 1205 which may be coupled to a processor 1210, ROM (Read Only Memory) 1220, RAM (or volatile memory) 1225, and storage (or non-volatile memory) 1230. The processor 1210 may retrieve stored instructions from one or more of the memories 1220, 1225, and 1230 and execute the instructions to perform processes, operations, or methods described herein. These memories represent examples of a non-transitory machine-readable medium or storage containing instructions which when executed by a computing system (or a processor), cause the computing system (or processor) to perform operations, processes, or methods described herein. The RAM 1225 may be implemented as, for example, dynamic RAM (DRAM), or other types of memory that require power continually in order to refresh or maintain the data in the memory. Storage 1230 may include, for example, magnetic, semiconductor, tape, optical, removable, non-removable, and other types of storage that maintain data even after power is removed from the system. It should be appreciated that storage 1230 may be remote from the system (e.g. accessible via a network).

A display controller 1250 may be coupled to the bus 1205 in order to receive display data to be displayed on a display device 1255, which can display any one of the user interface features or embodiments described herein and may be a local or a remote display device. The computing system 1200 may also include one or more input/output (I/O) components 1265 including mice, keyboards, touch screen, network interfaces, printers, speakers, and other devices. Typically, the input/output components 1265 are coupled to the system through an input/output controller 1260.

Modules 1270 (or components, units, or logic) may represent any of the modules described above, such as, for example, search application 122, search module 124, ranking module 126, metadata processing module 140, and crawler 157 (and related modules, and sub-modules). Modules 1270 may reside, completely or at least partially, within the memories described above, or within a processor during execution thereof by the computing system. In addition, modules 1270 can be implemented as software, firmware, or functional circuitry within the computing system, or as combinations thereof.

The present disclosure recognizes that the use of personal information data, in the present technology, can be used to the benefit of users. For example, the personal information data can be used to deliver targeted content that is of greater interest to the user. Accordingly, use of such personal information data enables calculated control of the delivered content. Further, other uses for personal information data that benefit the user are also contemplated by the present disclosure.

The present disclosure further contemplates that the entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and/or privacy practices. In particular, such entities should implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or governmental requirements for maintaining personal information data private and secure. For example, personal information from users should be collected for legitimate and reasonable uses of the entity and not shared or sold outside of those legitimate uses. Further, such collection should occur only after receiving the informed consent of the users. Additionally, such entities would take any needed steps for safeguarding and securing access to such personal information data and ensuring that others with access to the personal information data adhere to their privacy policies and procedures. Further, such entities can subject themselves to evaluation by third parties to certify their adherence to widely accepted privacy policies and practices.

Despite the foregoing, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of advertisement delivery services, the present technology can be configured to allow users to select to “opt in” or “opt out” of participation in the collection of personal information data during registration for services. In another example, users can select not to provide location information for targeted content delivery services. In yet another example, users can select to not provide precise location information, but permit the transfer of location zone information.

In the foregoing specification, example embodiments of the disclosure have been described. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense. 

What is claimed is:
 1. A non-transitory machine-readable medium storing instructions which, when executed by one or more processors of a computing device, cause the computing device to perform operations comprising: receiving, at a device, a search query for a search application that displays sample text as part of a search result; performing a search to identify content items associated with metadata or content that contain at least a part of the search query; ranking the identified content items based at least in part on whether the metadata or content is displayed as part of the sample text; and displaying, by the search application, the ranked content items as search results, wherein the displayed content items that contain at least portions of the search query as part of the sample text are prioritized by one or more weights over the displayed content items that do not contain the search query as part of the sample text.
 2. The medium of claim 1, wherein displaying the search results includes displaying the content items that contain the search query as part of the sample text above content items that do not contain the search query as part of the sample text, and wherein the one or more weights relate to whether portions of the search query are part of the sample text.
 3. The medium of claim 1, wherein displaying the search results includes displaying the content items in categorized groups, and displaying, within each of the categorized groups, the content items that contain the search query as part of the sample text above content items that do not contain the search query as part of the sample text.
 4. The medium of claim 1, wherein displaying the search results includes displaying the content items in categorized groups, and displaying the categorized groups that include one or more content items that contain the search query as part of the sample text above the categorized groups that do not include any content items that contain the search query as part of the sample text.
 5. The medium of claim 1, wherein the metadata is associated with an indicator indicating whether the metadata is displayed as part of the sample text.
 6. The medium of claim 5, wherein the metadata includes a first metadata entry and a second metadata entry, wherein the indicator indicates that the first metadata entry is displayed as part of the sample text for a first content item, and wherein the indicator is dynamically updated in response to a determined value of the second metadata entry for the first content item.
 7. The medium of claim 5, wherein the indicator indicating whether the metadata is displayed as part of the sample text is updated based on a search history.
 8. The medium of claim 1, wherein displaying the search results includes displaying each of the content items as a selectable item within a list, wherein the sample text is displayed as part of the selectable item.
 9. The medium of claim 1, wherein the ranked content items displayed as the search results are updated as characters of the search query are received.
 10. The medium of claim 1, wherein content items comprise one or more of a document, email, message, media item, map location, calendar event, reminder, contact, folder, or application.
 11. The medium of claim 1, wherein the sample text is a predefined number of characters of a body of an email.
 12. A method, comprising: receiving, at a device, a search query for a search application that displays sample text as part of a search result; performing a search to identify content items associated with a metadata or content entry that includes the search query, wherein the identified content items include a first content item associated with a first metadata or content entry that includes the search query, and a second content item associated with a second metadata or content entry that includes the search query; ranking the identified content items based on whether the metadata entry is displayed as part of the sample text, wherein the first metadata entry is displayed as part of the sample text, and the second metadata entry is not displayed as part of the sample text, and wherein the first content item is ranked higher than the second content item; and displaying, by the search application, the ranked content items as search results, wherein the first content item is displayed above the second content item.
 13. The method of claim 12, wherein displaying the search results includes displaying the content items in categorized groups, and displaying, within each of the categorized groups, the content items that include the search query as part of the sample text above content items that do not include the search query as part of the sample text.
 14. The method of claim 12, wherein displaying the search results includes displaying the content items in categorized groups, and displaying the categorized groups that include one or more content items that include the search query as part of the sample text above the categorized groups that do not include any content items that include the search query as part of the sample text.
 15. The method of claim 12, wherein displaying the search results includes displaying each of the content items as a selectable item within a list, wherein the sample text is displayed as part of the selectable item.
 16. The method of claim 12, wherein the metadata entry is associated with an indicator indicating whether the metadata is displayed as part of the sample text.
 17. A device, comprising: a processor; and a memory coupled to the processor, the memory storing instructions, which when executed by the processor, cause the processor to perform operations comprising: receiving, at a device, a search query for a search application that displays sample text of a content item as part of a search result; performing a search to identify content items associated with metadata or content relevant to the search query; ranking the identified content items based at least in part on whether the relevant metadata or content includes at least a part of the search query, wherein the relevant metadata or content is displayed as part of the sample text when providing the search result; and displaying, by the search application, the ranked content items as search results, wherein the displayed content items that include at least portions of the search query as part of the sample text are prioritized by one or more weights over the displayed content items that do not include the search query as part of the sample text.
 18. The device of claim 17, wherein displaying the ranked content items includes displaying the content items in categorized groups, and displaying, within each of the categorized groups, the content items that include the search query as part of the sample text above content items that do not include the search query as part of the sample text.
 19. The device of claim 17, wherein displaying the ranked content items includes displaying the content items in categorized groups, and displaying the categorized groups that include one or more content items that include the search query as part of the sample text above the categorized groups that do not include any content items that include the search query as part of the sample text.
 20. The device of claim 17, wherein displaying the search results includes displaying each of the content items as a selectable item within a list, wherein the sample text is displayed as part of the selectable item. 